<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>


<script>
    //使用setTimeout
    // setTimeout(() => {
    //     console.log('hello lv');
    // }, 1000)

    //参数 -> 函数(resolve, reject)
    //resolve, reject本身又是函数
    //链式编程
    // new Promise((resolve, reject) => {
    //     setTimeout(() => {
    //         resolve()
    //     }, 1000)
    // }).then(() => {
    //     console.log('hello html');
    //     console.log('hello html');
    //     console.log('hello html');
    //
    //     return new Promise((resolve, reject) => {
    //         setTimeout(() => {
    //             resolve()
    //         }, 1000)
    //     }).then(() => {
    //         console.log('hello css');
    //         console.log('hello css');
    //         console.log('hello css');
    //
    //         return new Promise((resolve, reject) => {
    //             setTimeout(() => {
    //                 resolve()
    //             }, 1000)
    //         }).then(() => {
    //             console.log('hello js');
    //             console.log('hello js');
    //             console.log('hello js');
    //         })
    //     })
    // })

    //什么情况下用Promise？ 一般情况下有异步操作时使用Promise对这个异步操作进行封装
    //
    // new Promise((resolve, reject) => {
    //     setTimeout(() => {
    //         //成功时调用resolve
    //         // resolve('hello')
    //
    //         //失败时调用reject
    //         reject('err message')
    //     }, 1000)
    // }).then(data => {
    //     console.log(data);
    // }).catch(err => {
    //     console.log(err);
    // })

    new Promise((resolve, reject) => {
        setTimeout(() => {
            // resolve('sucess')
            reject('error')
        }, 1000)
    }).then(data => {
        console.log(data);
    }, err => {
        console.log(err);
    })

</script>
</body>
</html>